
package manutençãoempregados.UTILS;

import classesDados.Empregado;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Date;
import java.util.TreeMap;


public class CadastrarEmpregadoDAO {
    
    private static TreeMap<String,Empregado> emprsTree = new TreeMap<String, Empregado>();
    
     public static boolean verificaExistencia(String code){
                       
       if(emprsTree.containsKey(code)){
           System.out.println(code);
           return true;
       }
       else
           return false;
   }
     
     public static  void cadastrarEmpregado(Empregado empr) {
       String code = empr.getCpf();
       emprsTree.put(code, empr);
       applyEncoder();
   }
     
   public static Empregado getEmpregado(String code){
       return emprsTree.get(code);
   }
   
   public static boolean recuperarCadastros(){
       
       XMLDecoder decoder = null;
       
       try {
            decoder = new XMLDecoder(new FileInputStream("empregados.xml"));
            emprsTree = (TreeMap<String,Empregado>) decoder.readObject();     
            decoder.close();
            return true;
        } catch (FileNotFoundException ex) {
            System.out.println(ex.getMessage());
            return false;
        }
   } 
   
   public static void AlterarEmpregado(Empregado empr){
                
       emprsTree.get(empr.getCpf()).setNome(empr.getNome());
       emprsTree.get(empr.getCpf()).setSexo(empr.getSexo());
       emprsTree.get(empr.getCpf()).setDatanasc(empr.getDatanasc());
       emprsTree.get(empr.getCpf()).setDataadm(empr.getDataadm());
       emprsTree.get(empr.getCpf()).setSalario(empr.getSalario());
       emprsTree.get(empr.getCpf()).setDatadesl(empr.getDatadesl());
       
       applyEncoder();
   }
   
    public static void ExcluirEmpregado(Empregado empr){
       emprsTree.remove(empr.getCpf());
       empr.setDatadesl(new Date());
       applyEncoder();
   }
   
   private static void applyEncoder(){
       
       XMLEncoder encoder = null;
       
       try{
           encoder = new XMLEncoder(new FileOutputStream("empregados.xml"));
           encoder.writeObject(emprsTree);
           encoder.close();
       }
       catch(FileNotFoundException  ex){
             System.out.println(ex.getMessage());
       }
   }
    
}
